package com.jt.aop;

import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;

@Component  //将类交给spring容器管理
@Aspect     //标识切面类
@Order(1)   //AOP第一个执行  数字越小越靠前
public class SpringAOP2 {

    //通过环绕通知 指定切入点表达式.
    @Around("@annotation(com.jt.anno.Lyj)")
    public Object around(ProceedingJoinPoint joinPoint) throws Throwable {
        //1.如果有下一个通知,则执行通知方法,没有通知,则执行目标方法
        System.out.println("执行环绕通知B开始");
        Object result = joinPoint.proceed();
        System.out.println("执行环绕通知B结束");
        return result;
    }
}
